Вводная часть
На
Wikipedia
Альфа-канал описывается как
...процесс комбинирования изображения с фоном с целью создания
эффекта частичной прозрачности.
Но я бы охарактеризовал Альфа-канал для WarCraft
III проще:
Чёрно-белое изображение, встроенное в текстуру, отвечающее за
прозрачность и полупрозрачное смешивание.
Основная часть
Необходимые программы:
- Adobe Photoshop любой версии
Но если вы собираетесь конвертировать в
*.blp
вашу текстуру, то понадобится соответствующая программа, которых на
нашем сайте море.
Возьмём, к примеру,
BLP Laboratory
Вы также можете проверить вашу текстуру в деле, т. е. на
модели, тогда вам понадобится еще ряд программ:
Но в принципе можно обойтись и одним War3 Model Editor'ом, если вы
будете редактировать уже имеющуюся и наложенную на модель текстуру.
Работа в Photoshop
Детально разъяснять его интерфейс и возможности я не буду, т. к. в
Интернете существует множество уроков по этой замечательной программе.
Я сделал простую текстуру, которую потом наложу на обычную плоскость:
1.1
В чёрной области у нас будет полупрозрачный Альфа-канал.
Шаг 1
Открыв в Photoshop’е
необходимую текстуру, нужно перейти на вкладку редактирования каналов
(п. 1 на 1.2). В данной вкладке сразу же имеются 4 канала: "RGB",
"Красный", "Зелёный" и "Синий".
Также там сразу может быть канал "Альфа 1", тогда
можно пропуститиь шаг 2.
Шаг 2
Если в каналах нет альфа-канала, то необходимо его создать -
в самом низу окошка редактирования каналов есть 4 маленьких кнопки. Нам
необходима та, что слева от корзины (п. 2 на 1.2) - нажмём её, и
создастся новый, полностью чёрный, альфа-канал (п. 3 на 1.2).
Шаг 3
Альфа-канал для WarCraft представляет
собой чёрно-белое изображение, встроенное непосредственно в текстуру и
сохраняющееся, насколько я знаю, только в *.tga,
*.png (как непосредственная прозрачность) и *.blp
форматах (ещё в *.dds - но это к
варкрафту не относится, и в *.bmp - но в нём альфа-канал теряется при
конвертации в *.blp). Чёрный цвет - прозрачность, белый -
непрозрачность.
1.2
При выборе Альфа-канала, автоматически включается только его
видимость в Photoshop’е (п. 5 на 1.2), но
можно включить в видимость все каналы, нажав на место "глазка"
(п. 4 на 1.2 и 1.3) слева от канала RGB и Альфа
1, тогда прозрачность Альфа-канала
становится полупрозрачным красным цветом, а непрозрачность
отображается непосредственно исходной картинкой (1.3).
Альфа-канал можно произвольно редактировать любыми цветами - все они
будут конвертироваться в серые оттенки.
После нехитрых операций с выделением, заливкой и копированием/вставкой,
я получил такой Альфа-канал:
1.3
Шаг 4
Теперь осталось лишь сохранить нашу текстуру. Делается это
простейшими командами:
Файл\Сохранить как...
Форматом сохранения выберите Targa (*.tga). После
нажатия кнопки сохранить вам будет выдано следующее окно:
1.4
Выберите "32 bits/pixel" (1 на 1.4) и нажмите "ОК"
(2 на 1.4).
Конвертация
Итак, если вы хотите конвертировать вашу текстуру и посмотреть
Альфа-канал уже в *.blp-изображении, то этот
раздел вам поможет.
Я решил использовать для этого BLP Laboratory
(далее BLP Lab) (ссылка на которую дана в начале
статьи).
Запускаем BLP Lab и выбираем:
Файл\Открыть... (п. 1 на 2.1)
В раскрывшемся окне выберите вашу текстуру в формате *.tga.
Уже сейчас вы можете просмотреть альфа-канал, нажав кнопку "Альфа-канал"
(п. 2 на 2.1) или "Прозрачность" (п. 3 на 2.1).
2.1
Налюбовались?
Теперь нам осталась лишь конвертация сама по себе, для этого выберите:
Файл\Сохранить как... (п. 4 на 1.5)
Выберите фомат
*.blp и сохраните в нужное вам
место. Во всплывшем окне можете поиграть с настройками, описание
которых можете найти в
теме данной программы на форуме, а
можете оставить всё по стандарту и нажать
"ОК".
Теперь, если хотите, можете пооткрывать
полученное *.blp-изображение в разных программах.
Использование в моделях
Теперь я наложу нашу текстуру на простейшую модель - плоскость.
Как работать с MDLvis'ом я рассказывать не буду, т.
к. на XGM достаточно статей и уроков по этой
программе.
Я создал плоскость и наложил на неё мою текстуру:
3.1
Прозрачность
А вот теперь первая часть того главного, ради чего мы создавали наш
Альфа-канал.
Здесь нам понадобится War3 Model Editor (далее w3me).
Откройте вашу модель и перейдите в редактор материалов
командой:
Окна\Редактор Материалов (4.1)
У меня в нём всего один материал,
которым мы и будем заниматься
Поочерёдно дважды нажимая сначала на материал, затем на слой материала,
вы перейдёте в окно "Слой материала", которое нам
сейчас нужно.
4.1
Здесь мы можем выбрать 2 варианта смешивания, которые подойдут нам для
прозрачности - это Transparent (п. 1 на 4.2) и Blend
(п. 2. на 4.2).
Я также поставил галочку на "Двусторонний"
(п. 3 на 4.2), т. к. в случае с плоскостью её использование необходимо.
4.2
- Transparent работает как грубое
смешивание прозрачности по Альфа-каналу с использованием только 2-х
единиц измерения прозрачности: прозрачно и непрозрачно.
- Blend работает мягче, используя все
оттенки прозрачности в соответствии с цветами Альфа-канала, но данное
смешивание очень странно работает с нормалями... как описать словами
эти баги я не знаю, но думаю, изображение ниже раскроет их суть:

4.3
»
Дополнительная информация
Мне кажется, будет не лишним, описать оставшиеся 3 режима
смешивания, а в частности Add Alpha, Additive, и Modulate.
- Add Alpha создаёт прозрачность,
основываясь на яркости цвета. При наложении,
яркости цветов складываются (это можно легко
проврить инструментом "Пипетка" в Photoshop
(4.2.1), но такая проверка пройдёт только на чёрном фоне, т. к. с ним
чёрные, а значит и прозрачные по яркости участки получают обратно свой
цвет), альфа-каналы тоже складываются (попиксельно,
разумеется). Одна из особенностей этого режима смешивания состоит в
том, что с ним текстура материала становится такой же как и
оригинальная только на чёрном фоне, все остальные цвета дают повышение
яркости.
4.2.1
- Modulate является полной
противоположностью Add Alpha, он не
зависит от альфа-канала, а прозрачность создаёт обратно
повышению яркости, т. е. тёмный цвет непрозрачен, а
светлый прозрачен. При наложении яркость цветов вычитается.
Чем темнее фон, тем темнее материал, а значит, оригинальную текстуру он
приобретает только на белом фоне.
- Additive - это нечто между Add
Alpha и Modulate, при наложении поверх тёмного
цвета, все участки затемняются, при наложении
поверх светлого - осветляются,
но в отличие от Modulate затемниться до абсолютно
чёрного материал с таким смешиванием не может,
прозрачность строится аналогично. В отличие от Add Alpha,
Additive никак не зависит от
альфа-канала.
Здесь вы можете увидеть как фон и альфа-канал воздействуют
на данные режимы смешивания:
4.2.2 | 4.2.3 | 4.2.4
Используя эти режимы смешивания можно добиться интересных и
красивых эффектов, в том числе и для прозрачности и цвета игрока.
-
Однако, есть способ исправления этого бага: нужно подложить
под слой с Blend'ом слой с таким же материалом, но
со смешиванием Transparent.
4.3.1
На изображении 4.4 вы можете видеть
разницу между режимами смешивания None, Transparent
и Blend.
4.4
Цвет игрока
Теперь я расскажу вам о создании Тим-колора или говоря
по-русски, Цвета Игрока.
Тут я буду использовать ту же самую модель, что и раньше. Вы, если
хотите, можете взять какую-нибудь другую.
Сначала необходимо в список используемых текстур добавить Replaceable
ID 1 (Цвет Игрока).
На изображении ниже наглядно показан порядок действий:
5.1
После того, как вы добавили Replaceable ID 1
в список текстур, нужно перейти в редактор материалов и сделать
следующее с тем материалом, в котором используется ваша текстура с
Альфа-каналом:
5.2
Также в случае с плоскостью
целесообразно установить флажок на «Двусторонний».
Теперь необходимо передвинуть только что созданный слой с Цветом Игрока
под слой с основной текстурой, т. е. вверх:
5.3
Внимание: для того чтобы цвет игрока
правильно работал необходимо, чтобы вышележащий слой (выше по иерархии,
но визуально он находится ниже в окне редактирования материла) имел
режим смешивания Blend или Transparent.
Ну вот и всё. Теперь осталось лишь понажимать везде «ОК»
и полюбоваться результатом.
5.4
Цвет игрока в частицах
Немногие знают, что частицы тоже можно наделить цветом
игрока, но здесь есть один огромный недостаток: цветом игрока могут
обладать лишь частицы, использующие текстуры Replaceable ID 1
(собственно текстура цвета игрока) и Replaceable ID 2
(свечение цветом игрока, как у героев). Эти значения устанавливаются в
графе "ID текстуры" (п 2 на 5.5): 1
соответствует Replaceable ID 1, а 2
- Replaceable ID 2.
Вообще, туда можно поставить любой ID,
но при, например, 31-ом, у вас будут излучаться текстуры дерева
лордерона, которые будут меняться при попадании на порчу.
Также, чтобы видеть результат, нужно поставить соответствующую текстуру
в отвечающий за неё уже другой "ID текстуры" (п. 1
на 5.5), но даже если вы там поставите совершенно иную текстуру, в игре
он заменится на ID из пункта 2 (5.5).
5.5
Внимание: перед импортом в редактор
измените текстуру Replaceable ID в графе текстуры (п. 1 на 5.5) на
любую другую, например на Flare.blp, иначе редактор, при выборе модели
в РО, выдаст ошибку и закроется.
Заключение
Вот я и рассказал вам про создание и использование
Альфа-канала. Надеюсь, предоставленная мною информация оказалась вам
полезна, а статья пришлась по нраву!
К статье приложены материалы, использовавшиеся в этой статье.
В связи с багами нормалей во
всех приложенных моделях, в материалах я поставил дополнительный флажок
на Незатуманенный (ошибка перевода – Незатуманенный
– Незатенённый (подробнее)).//
Благодарности:
Спасибо
Wolverine’у
за то, что он выложил на сайт
War3 Model Editor 1.05,
Dron’у за
информацию об утере Альфа-канала в
*.bmp при
конвертации в
*.blp и
Q
w e r t y за информацию об исправлении бага
нормалей.
Спасибо за внимание!

К статье прикреплены
файлы:
AlphaTest(psd).rar
(106.7 Кбайт)
AlphaTest(tga).rar
(29.1 Кбайт)
Used_model_with_texture.rar
(26.3 Кбайт)